home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / mus / play / mikmod.rea < prev    next >
Text File  |  1997-03-02  |  8KB  |  177 lines

  1. Short:    Amiga Port of the *IX tracker MikMod.    
  2. Author:   bybell@cse.psu.edu (Tony Bybell)
  3. Uploader: bybell@cse.psu.edu (Tony Bybell)
  4. Version:  2.09.
  5. Type:     mus/play
  6.  
  7. Why another MOD player for the Amiga?
  8. Because Intro to Compiler Construction is driving me nuts and I need a break
  9. from LR(k) grammars!
  10.  
  11. But seriously, the reason I ported this to the Amiga is simple: with the
  12. PowerPC coming soon to the Amiga community, the 680x0 modplayers out there
  13. aren't going to be a viable solution anymore since in terms of speed, C code
  14. on a PPC will easily outstrip assembler on a 68040. Nonetheless, this still
  15. does output regular mods at 22.5kHz per channel in stereo or 44.1 in mono.
  16. As far as XM files go, I hope you have an '060... (The price for
  17. portability, *snif*) Remember you can only get 44.1 if you do the mode
  18. promotion trick to double your audio bandwidth...
  19.  
  20. This was compiled on an '040 and the compiler sez it'll work on all
  21. processors, but I haven't been able to test it out on anything besides an
  22. A4000. It's probably useless on a 68000 because of the processor intensive
  23. nature of the sound mixing used. (Even regular mod files are mixed at 16-bit
  24. then truncated to 14 bits--all in the name of portability, *snif again*.)
  25.  
  26. What is it?
  27. This is the Amiga port of MikMod2.09 by Jean-Paul Mikkers. Built-in drivers
  28. for eight and 14-bit Paula sound have been included. Paula14c will be
  29. forthcoming if there is a demand for it. I was going to do this using AHI ,
  30. but for some reason the hook function called by the AHIA_SoundFunc tag kept
  31. crashing my machine. Sorry, Toccata owners. (Well, at least until I can
  32. figure out how to get the hooks working w/o crashing.)
  33.  
  34. The sound drivers are:
  35. 1. Paula 14-bit output driver v1.1a
  36. 2. Paula Eight-bit output driver v1.0
  37. 3. MikMod music.raw file output driver v1.0
  38. 4. MikMod Nosound Driver v2.0 - (c) Creative Silence
  39.  
  40. By default, Paula14 is used. Something to keep in mind here...note that you
  41. can write out music.raw files for especially slow machines if you use the
  42. -d3 option from the command line. It can then be played using Play16. (e.g.,
  43. Play16 music.raw raw signed bits 16 tracks 2 filter off out paula14)
  44.  
  45. Module players included are:
  46. 1. Portable XM loader v0.4
  47. 2. Portable UNI loader v0.3 (This is the internal MikMod format)
  48. 3. Portable ULT loader v0.1
  49. 4. Portable STM Loader - V 1.2
  50. 5. Portable S3M loader v0.2
  51. 6. Portable MTM loader v0.1
  52. 7. Portable MOD loader v0.11
  53. 8. Portable MOD-15 loader v0.1
  54.  
  55. Miscellany:
  56. Note that all calculations are done internally in 16-bit mode. Using the
  57. eight-bit modes only truncates the output as it copies to Chip RAM.
  58.  
  59. I handle the 14-bit code in a really bizarre way to keep myself from having
  60. to worry about timing issues. I do a BeginIO() on the channel 0 then write
  61. to chip registers for the rest. Call me lazy, but I have a full courseload
  62. this semester. I'll do this the proper way sometime, but if anyone wants to
  63. beat me to the punch, go ahead. But for now if it crashes your machine or
  64. causes memory leaks the size of Nebraska, please don't burn my house down or
  65. ping-flood my server. ;)
  66.  
  67. The original archive mikmod209.tgz is also included in case anyone wants to
  68. do diffs on this and see what I changed to get this to run on the Amiga.
  69. Additionally, all the original legalese and caveats are present in that
  70. included archive.
  71.  
  72. If you're motivated, you can rework the drivers or do whatever you want.
  73. If you have the source, do what you want with it. If you want to port this
  74. to your HP Laserjet, go do it, hehe! 
  75.  
  76. Have fun!
  77.  
  78. 01Feb97
  79. Tony Bybell
  80. bybell@cse.psu.edu
  81. http://www.cse.psu.edu/~bybell/
  82.  
  83. ----------------------------------------------------------------------------
  84.  
  85. Notes:
  86. 1) A stock Amiga 4000/040 can successfully play a 4-channel mod file at the
  87. following rates:
  88.  
  89. mikmod -f 22050 mymodule.mod
  90. mikmod -f 44100 -m mymodule.mod
  91.  
  92. Higher rates are possible but it depends on background tasks running.
  93.  
  94. 2) Moving the mouse or executing any programs may cause the sound to break
  95. up. I am working on a fix for this.
  96.  
  97. 3) Switching between 8 and 14-bit mode without rebooting causes strange
  98. results. This is being looked into. If you really want to use 8-bit mode, I
  99. suggest using the -8 switch. (I only used this to test that 14-bit mode
  100. really works. You set the volume at 5% and play with -8 then without it.
  101. 14-bit mode is an appreciable difference!) That way, when you switch back to
  102. 14-bit mode, things will sound normal since you never left 14-bit mode in
  103. the first place!
  104.  
  105. 4) The s.a, s.o files handle the AUD0 interrupt. (It sends a signal back to
  106. the program to tell it that it's OK to continue.) Note that hard disk access
  107. also seems to trigger a level4 interrupt. This is being looked into. The s.a
  108. file is the only nonportable file in this archive as it's 680x0 specific
  109. code usd to signal the AUD0 interrupt back to the Wait() in the update code
  110. for Paula14. Regular 8-bit Paula doesn't need s.o.
  111.  
  112. 5) This is far from "production quality," but it does work... I'm getting
  113. rid of bugs as I find them, but since I'm in my last semester of Computer
  114. Engineering, I'm kind of busy working on other projects like SimYacht for
  115. X-Windows for my project class so I have less time to devote to my Amiga
  116. stuff but I keep trying! =)
  117.  
  118. ----------------------------------------------------------------------------
  119.  
  120.  
  121. ============================= Archive contents =============================
  122.  
  123. Original  Packed Ratio    Date     Time    Name
  124. -------- ------- ----- --------- --------  -------------
  125.        0       0  0.0% 11-Feb-97 16:54:28 +
  126.      636     322 49.3% 30-Jan-97 04:11:34 +CompileScript
  127.      294     155 47.2% 31-Jan-97 13:44:34 +LinkScript
  128.     1053     480 54.4% 28-Jan-97 03:44:46 +drv_nos.c
  129.      860     430 50.0% 30-Jan-97 04:14:14 +drv_nos.o
  130.    16530    3214 80.5% 31-Jan-97 13:44:04 +drv_p14.c
  131.     6876    3218 53.1% 31-Jan-97 13:44:18 +drv_p14.o
  132.     8129    1972 75.7% 28-Jan-97 22:20:20 +drv_pau.c
  133.     3780    1945 48.5% 30-Jan-97 04:14:22 +drv_pau.o
  134.     1179     622 47.2% 28-Jan-97 03:44:46 +drv_raw.c
  135.     1004     510 49.2% 30-Jan-97 04:14:14 +drv_raw.o
  136.     4424    1949 55.9% 28-Jan-97 03:44:46 +getopt.c
  137.      740     480 35.1% 30-Jan-97 04:14:32 +getopt.o
  138.     6643    2468 62.8% 28-Jan-97 03:44:46 +load_m15.c
  139.     2948    1769 39.9% 30-Jan-97 04:13:26 +load_m15.o
  140.     7646    2829 63.0% 28-Jan-97 03:44:46 +load_mod.c
  141.     3504    2040 41.7% 30-Jan-97 04:13:24 +load_mod.o
  142.     5568    1960 64.7% 28-Jan-97 03:44:46 +load_mtm.c
  143.     3132    1721 45.0% 30-Jan-97 04:13:28 +load_mtm.o
  144.    10973    3378 69.2% 28-Jan-97 03:44:46 +load_s3m.c
  145.     5612    2897 48.3% 30-Jan-97 04:13:32 +load_s3m.o
  146.     8977    3415 61.9% 28-Jan-97 03:44:46 +load_stm.c
  147.     3912    2083 46.7% 30-Jan-97 04:13:34 +load_stm.o
  148.     5104    1957 61.6% 28-Jan-97 03:44:46 +load_ult.c
  149.     3240    1761 45.6% 30-Jan-97 04:13:38 +load_ult.o
  150.     3355    1144 65.9% 28-Jan-97 03:44:46 +load_uni.c
  151.     2520    1316 47.7% 30-Jan-97 04:13:40 +load_uni.o
  152.    15012    4338 71.1% 28-Jan-97 03:44:46 +load_xm.c
  153.     5092    2711 46.7% 30-Jan-97 04:13:46 +load_xm.o
  154.     4447    1645 63.0% 28-Jan-97 03:44:46 +mdriver.c
  155.     2688    1510 43.8% 30-Jan-97 04:14:00 +mdriver.o
  156.    61644   32125 47.8% 31-Jan-97 13:44:40 +mikmod
  157.    15437    4092 73.4% 28-Jan-97 22:23:56 +mikmod.h
  158.     5331    2599 51.2% 11-Feb-97 16:53:06 +mikmod.readme
  159.   109657  109657  0.0% 28-Jan-97 22:37:36 +mikmod209.tgz
  160.     4948    2093 57.7% 28-Jan-97 22:20:48 +mikxmod.c
  161.     3684    1929 47.6% 30-Jan-97 04:13:48 +mikxmod.o
  162.     5930    2235 62.3% 28-Jan-97 03:44:48 +mloader.c
  163.     3132    1788 42.9% 30-Jan-97 04:13:58 +mloader.o
  164.     4906    1236 74.8% 28-Jan-97 03:44:48 +mmio.c
  165.     4712    1526 67.6% 30-Jan-97 04:13:42 +mmio.o
  166.    28919    9459 67.2% 28-Jan-97 03:44:48 +mplayer.c
  167.    12476    7593 39.1% 30-Jan-97 04:14:08 +mplayer.o
  168.      908     356 60.7% 28-Jan-97 03:44:48 +mtypes.h
  169.     7436    2717 63.4% 28-Jan-97 03:44:48 +munitrk.c
  170.     2336    1133 51.4% 30-Jan-97 04:14:12 +munitrk.o
  171.      316     197 37.6% 30-Jan-97 04:13:08 +s.a
  172.      296     191 35.4% 30-Jan-97 04:13:02 +s.o
  173.    13001    4080 68.6% 28-Jan-97 03:44:48 +virtch.c
  174.     5784    3179 45.0% 30-Jan-97 04:13:54 +virtch.o
  175. -------- ------- ----- --------- --------
  176.   436731  244424 44.0% 12-Feb-97 14:50:50   50 files
  177.